The display of a digital television signal is usually facilitated by means of a set-top box connected between the television signal receiver (e.g. aerial or satellite dish) and the television itself. Of course, the functionality of the set-top box may be incorporated into the television. Consumers have an expectation regarding the costs of set-top boxes. Typically, they expect them to be relatively cheap, for example in the region of £100. This expectation places severe restraints on set-top box design, particularly in terms of the processing power and memory which they can provide. In order to achieve such low cost products, manufacturers have sought to provide essentially single-chip solutions in which all of the processing required to decode and display the television signal is provided on a single chip. The only significant component not provided on this chip will be a main memory, typically an SDRAM.
Any competitive set-top box product must have a facility for displaying on-screen display (OSD) graphics. These appear on-screen as graphic elements overlaid on the video signal, and may for example be used to provide channel identifiers (e.g. BBC1, BBC2, etc) and volume level indicators. OSD graphics are stored as bitmap images in the main SDRAM. A bitmap comprises a colour code for each pixel to be displayed on the screen, at a position within a two dimensional storage array which reflects the actual screen resolution. The colour code can be in various formats, each requiring a different number of bits ranging, typically, from 4 to 32 bits. The formats encompass true, or direct, colour representations in which a number of bits are allocated to each colour component (RGB or luma/chroma), through to a colour code which represents a limited choice out of a range of colours defined by the originator. When the bitmap is to be displayed, this code is translated to a real colour through a lookup table stored in the SDRAM.
The SDRAM also provides two areas referred to here as OSD frame stores. Each OSD frame store is an area of memory mapped to the television display, i.e. each memory element of the frame store is mapped to a corresponding pixel of the display. The OSD graphics to be overlaid on a video frame are loaded into a frame store prior to display. The frame store date is then read out, line by line, and passed to a mixer where it is mixed with the video data. Mixing may be done using a process known as “alpha blending” which allows image data to be layered, with underlying layers being visible to a greater or lesser extent. Whilst data is being read from one OSD frame store, the other OSD frame store is being loaded with the data for the next frame. Typically, the SDRAM also provides a pair of video frame stores which are loaded with video data. Data is read from each of the video frame stores in turn, for mixing with the OSD data.
A typical OSD or graphics screen consists of a number of separate, but smaller, bitmaps (“objects”) which are put together (or composed) at display time. With the frame store approach these objects must be copied from their normal storage area into the correct position in the complete frame store. If an object is repeated, it has to be copied more than once, i.e. it has to be copied to several positions in the frame store. Every time an object moves (e.g. during an animation sequence) the complete frame store must be re-composed. The need to fill the background space between individual objects also complicates the frame store composition process.
The copying of pixels belonging to an object is done using software running on the main processor of the set-top box. This is a time consuming process, wasting much of the power of the main processor and the available access bandwidth in the common storage area (i.e. the maximum rate at which data can be written to and read from the SDRAM). The software copying of a pixel is known as a BitBlt operation, and is sometimes assisted by a special hardware BitBlt Processor. However, this does not reduce the storage bandwidth requirements.
With the frame store approach, the whole contents of the OSD frame store is read out at the screen display rate. This represents an extremely inefficient use of processing power and of the memory bandwidth, given that the OSD or graphic to be displayed often occupies only a small area of the screen (or several small areas of the screen), with video occupying the rest of the screen.
In order to reduce the processing and memory bandwidth requirements, hardware in present generation Digital TV Systems uses the concept of planes (usually four) and regions in order to construct a user screen. Planes allow backgrounds, still video, and OSD to be overlaid with a fixed priority order, and then merged with the decoded video. Regions are bitmap areas in the OSD plane, which are usually smaller than the display screen but which have the same pixel resolution and use a common colour lookup table. Unfortunately, hardware restrictions prevent regions from occupying the same TV line, never mind actually overlapping with a specified display priority.
The provision of hardware to implement planes and regions does to some extent reduce the software burden in constructing a screen. This is because only a region which is smaller than the full screen may have to be composed from the various bitmap images (or objects) which make up the OSD plane. The process, however, still involves physically moving bitmaps around in the SDRAM in order to construct a single bitmap for the complete region. Every time an object is moved, the whole process still has to be repeated.
Provider specifications now require that video stills be repeated over the screen (tiling effects), and that vertical wipes between stills be possible. They also ask for animation in the OSD plane, and require that Digital Video Broadcasting (DVB) subtitling requirements be supported. The DVB specification for subtitles defines the concept of objects and regions, where a region can contain many objects with no restrictions on line occupancy. A region is simply a vertically separated area on the screen with a common colour palette and background fill colour. The descriptors for objects allow them to be characters or bitmaps, and give each object an identification number (ID). The region descriptor defines which objects are to be present through their ID numbers, and also defines the position of each object on the screen. Thus objects can be repeated in the region without the need to transmit the bitmap of that object more than once.
Unfortunately present generation systems would have to construct each region as a complete bitmap in their microprocessor memory space. Thus each received object bitmap would have to be moved from its own storage area into the correct physical position in the memory representation of a complete region. In addition, the vacant space between objects within a region would have to be filled with a defined colour. When an object is moved or deleted the whole region would have to be re-constructed.